// pages/club/detail.js
const clubApi = require('../../api/club');
const app = getApp();

Page({
  data: {
    clubId: null,
    club: {},
    members: [],
    recentEvents: [],
    isMember: false,
    isLeader: false
  },

  onLoad(options) {
    if (options.id) {
      this.setData({ clubId: options.id });
      this.loadClubDetail();
    }
  },

  /**
   * 加载俱乐部详情
   */
  loadClubDetail() {
    clubApi.getClubDetail(this.data.clubId)
      .then(data => {
        this.setData({
          club: data,
          isMember: data.is_member || false,
          isLeader: data.is_leader || false
        });

        // 加载成员列表
        this.loadMembers();
        
        // 加载最近活动
        this.loadRecentEvents();
      })
      .catch(err => {
        console.error('加载俱乐部详情失败:', err);
        wx.showToast({
          title: '加载失败',
          icon: 'none'
        });
      });
  },

  /**
   * 加载成员列表
   */
  loadMembers() {
    clubApi.getClubMembers(this.data.clubId, { page: 1, page_size: 10 })
      .then(data => {
        this.setData({
          members: data.items || []
        });
      })
      .catch(err => {
        console.error('加载成员列表失败:', err);
      });
  },

  /**
   * 加载最近活动
   */
  loadRecentEvents() {
    // TODO: 调用俱乐部活动API
    // 这里使用模拟数据
    const mockEvents = [];
    this.setData({ recentEvents: mockEvents });
  },

  /**
   * 加入俱乐部
   */
  joinClub() {
    app.checkLogin().then(() => {
      wx.showModal({
        title: '确认加入',
        content: `确定要加入"${this.data.club.name}"吗？`,
        success: (res) => {
          if (res.confirm) {
            this.doJoinClub();
          }
        }
      });
    }).catch(() => {});
  },

  /**
   * 执行加入俱乐部
   */
  doJoinClub() {
    wx.showLoading({ title: '加入中...' });

    clubApi.joinClub(this.data.clubId)
      .then(() => {
        wx.hideLoading();
        wx.showToast({
          title: '加入成功',
          icon: 'success'
        });
        this.loadClubDetail();
      })
      .catch(err => {
        wx.hideLoading();
        console.error('加入俱乐部失败:', err);
      });
  },

  /**
   * 退出俱乐部
   */
  leaveClub() {
    wx.showModal({
      title: '确认退出',
      content: '确定要退出该俱乐部吗？',
      success: (res) => {
        if (res.confirm) {
          this.doLeaveClub();
        }
      }
    });
  },

  /**
   * 执行退出俱乐部
   */
  doLeaveClub() {
    wx.showLoading({ title: '退出中...' });

    clubApi.leaveClub(this.data.clubId)
      .then(() => {
        wx.hideLoading();
        wx.showToast({
          title: '已退出',
          icon: 'success'
        });
        this.loadClubDetail();
      })
      .catch(err => {
        wx.hideLoading();
        console.error('退出俱乐部失败:', err);
      });
  },

  /**
   * 查看全部成员
   */
  viewAllMembers() {
    // TODO: 跳转到成员列表页面
    wx.showToast({
      title: '功能开发中',
      icon: 'none'
    });
  },

  /**
   * 导航到活动详情
   */
  navigateToEvent(e) {
    const { id } = e.currentTarget.dataset;
    wx.navigateTo({
      url: `/pages/activity/detail?id=${id}`
    });
  },

  /**
   * 管理俱乐部
   */
  manageClub() {
    // TODO: 跳转到俱乐部管理页面
    wx.showToast({
      title: '功能开发中',
      icon: 'none'
    });
  },

  /**
   * 发起活动
   */
  createEvent() {
    wx.navigateTo({
      url: '/pages/activity/create'
    });
  },

  /**
   * 获取角色文本
   */
  getRoleText(role) {
    const roleMap = {
      'leader': '团长',
      'admin': '管理员',
      'member': '成员'
    };
    return roleMap[role] || '成员';
  },

  /**
   * 下拉刷新
   */
  onPullDownRefresh() {
    this.loadClubDetail();
    wx.stopPullDownRefresh();
  },

  /**
   * 分享
   */
  onShareAppMessage() {
    return {
      title: this.data.club.name || '精彩俱乐部',
      path: `/pages/club/detail?id=${this.data.clubId}`,
      imageUrl: this.data.club.avatar
    };
  }
});

